nextcloud-desktop.git
7 months agofix(l10n): Update translations from Transifex
Nextcloud bot [Mon, 7 Jul 2025 02:48:51 +0000 (02:48 +0000)]
fix(l10n): Update translations from Transifex

Signed-off-by: Nextcloud bot <bot@nextcloud.com>
7 months agofix(l10n): Update translations from Transifex
Nextcloud bot [Fri, 4 Jul 2025 02:50:45 +0000 (02:50 +0000)]
fix(l10n): Update translations from Transifex

Signed-off-by: Nextcloud bot <bot@nextcloud.com>
7 months agofix(l10n): Update translations from Transifex
Nextcloud bot [Thu, 3 Jul 2025 02:52:16 +0000 (02:52 +0000)]
fix(l10n): Update translations from Transifex

Signed-off-by: Nextcloud bot <bot@nextcloud.com>
7 months agofix(l10n): Update translations from Transifex
Nextcloud bot [Tue, 1 Jul 2025 02:48:07 +0000 (02:48 +0000)]
fix(l10n): Update translations from Transifex

Signed-off-by: Nextcloud bot <bot@nextcloud.com>
7 months agofix(l10n): Update translations from Transifex
Nextcloud bot [Mon, 30 Jun 2025 03:37:02 +0000 (03:37 +0000)]
fix(l10n): Update translations from Transifex

Signed-off-by: Nextcloud bot <bot@nextcloud.com>
7 months agofix(l10n): Update translations from Transifex
Nextcloud bot [Sun, 29 Jun 2025 03:34:08 +0000 (03:34 +0000)]
fix(l10n): Update translations from Transifex

Signed-off-by: Nextcloud bot <bot@nextcloud.com>
7 months agofix(l10n): Update translations from Transifex
Nextcloud bot [Sat, 28 Jun 2025 03:38:56 +0000 (03:38 +0000)]
fix(l10n): Update translations from Transifex

Signed-off-by: Nextcloud bot <bot@nextcloud.com>
7 months agofix(l10n): Update translations from Transifex
Nextcloud bot [Fri, 27 Jun 2025 03:08:33 +0000 (03:08 +0000)]
fix(l10n): Update translations from Transifex

Signed-off-by: Nextcloud bot <bot@nextcloud.com>
7 months agofix(l10n): Update translations from Transifex
Nextcloud bot [Wed, 25 Jun 2025 03:03:20 +0000 (03:03 +0000)]
fix(l10n): Update translations from Transifex

Signed-off-by: Nextcloud bot <bot@nextcloud.com>
7 months agofix(l10n): Update translations from Transifex
Nextcloud bot [Tue, 24 Jun 2025 03:01:25 +0000 (03:01 +0000)]
fix(l10n): Update translations from Transifex

Signed-off-by: Nextcloud bot <bot@nextcloud.com>
7 months agofix(l10n): Update translations from Transifex
Nextcloud bot [Mon, 23 Jun 2025 03:00:52 +0000 (03:00 +0000)]
fix(l10n): Update translations from Transifex

Signed-off-by: Nextcloud bot <bot@nextcloud.com>
8 months agofix(l10n): Update translations from Transifex
Nextcloud bot [Sun, 22 Jun 2025 03:03:27 +0000 (03:03 +0000)]
fix(l10n): Update translations from Transifex

Signed-off-by: Nextcloud bot <bot@nextcloud.com>
8 months agofix(l10n): Update translations from Transifex
Nextcloud bot [Thu, 19 Jun 2025 03:01:26 +0000 (03:01 +0000)]
fix(l10n): Update translations from Transifex

Signed-off-by: Nextcloud bot <bot@nextcloud.com>
8 months agofix(logs): remove not so useful logs
Matthieu Gallien [Wed, 18 Jun 2025 20:57:35 +0000 (22:57 +0200)]
fix(logs): remove not so useful logs

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
8 months agofix(logs): remove useless logs
Matthieu Gallien [Wed, 18 Jun 2025 20:40:41 +0000 (22:40 +0200)]
fix(logs): remove useless logs

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
8 months agochore: prepare for 3.16.6 release
Matthieu Gallien [Wed, 18 Jun 2025 15:00:06 +0000 (17:00 +0200)]
chore: prepare for 3.16.6 release

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
8 months agoMerge pull request #8382 from nextcloud/backport/8370/stable-3.16
Matthieu Gallien [Wed, 18 Jun 2025 14:53:01 +0000 (16:53 +0200)]
Merge pull request #8382 from nextcloud/backport/8370/stable-3.16

[stable-3.16] fix(readonly): better handling of ACL on read-only files on windows

8 months agofix(readonly): better handling of ACL on read-only files on windows
Matthieu Gallien [Thu, 12 Jun 2025 12:16:41 +0000 (14:16 +0200)]
fix(readonly): better handling of ACL on read-only files on windows

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
8 months agoMerge pull request #8381 from nextcloud/backport/8356/stable-3.16
Jyrki Gadinger [Wed, 18 Jun 2025 08:24:12 +0000 (10:24 +0200)]
Merge pull request #8381 from nextcloud/backport/8356/stable-3.16

[stable-3.16] fix(crash): debug builds would not try to remove a not found job

8 months agofix(crash): debug builds would not try to remove a not found job
Matthieu Gallien [Fri, 6 Jun 2025 09:58:39 +0000 (11:58 +0200)]
fix(crash): debug builds would not try to remove a not found job

in release builds we would happily try to remove an element from QList
with invalid index (-1) if the job is not found

avoid doing this in release builds and keep teh assert in debug builds

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
8 months agoMerge pull request #8380 from nextcloud/backport/8379/stable-3.16
Jyrki Gadinger [Wed, 18 Jun 2025 07:08:40 +0000 (09:08 +0200)]
Merge pull request #8380 from nextcloud/backport/8379/stable-3.16

[stable-3.16] fix(accountmanager): use defaults from configFile if setting was not present

8 months agostyle: access static members through `::`
Jyrki Gadinger [Wed, 18 Jun 2025 05:58:33 +0000 (07:58 +0200)]
style: access static members through `::`

Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
8 months agofix(accountmanager): use defaults from configFile if setting was not present
Jyrki Gadinger [Tue, 17 Jun 2025 10:29:40 +0000 (12:29 +0200)]
fix(accountmanager): use defaults from configFile if setting was not present

This prevented e.g. "launchOnSystemStartup" to be set on a fresh
installation.

Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
8 months agofix(l10n): Update translations from Transifex
Nextcloud bot [Tue, 17 Jun 2025 03:00:13 +0000 (03:00 +0000)]
fix(l10n): Update translations from Transifex

Signed-off-by: Nextcloud bot <bot@nextcloud.com>
8 months agoMerge pull request #8378 from nextcloud/backport/8375/stable-3.16
Jyrki Gadinger [Mon, 16 Jun 2025 13:41:49 +0000 (15:41 +0200)]
Merge pull request #8378 from nextcloud/backport/8375/stable-3.16

[stable-3.16] fix(activitylistmodel): fix activities for e2ee files

8 months agofix(activitylistmodel): fix activities for e2ee files
Jyrki Gadinger [Mon, 16 Jun 2025 08:09:38 +0000 (10:09 +0200)]
fix(activitylistmodel): fix activities for e2ee files

the sharing/activity button was supposed to be hidden, but a later
change forgot to adapt the variable used for querying the file metadata
so it never could determine the e2e-status

Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
8 months agofix(l10n): Update translations from Transifex
Nextcloud bot [Sat, 14 Jun 2025 03:00:51 +0000 (03:00 +0000)]
fix(l10n): Update translations from Transifex

Signed-off-by: Nextcloud bot <bot@nextcloud.com>
8 months agofix(l10n): Update translations from Transifex
Nextcloud bot [Fri, 13 Jun 2025 02:58:22 +0000 (02:58 +0000)]
fix(l10n): Update translations from Transifex

Signed-off-by: Nextcloud bot <bot@nextcloud.com>
8 months agofix(l10n): Update translations from Transifex
Nextcloud bot [Wed, 11 Jun 2025 03:01:29 +0000 (03:01 +0000)]
fix(l10n): Update translations from Transifex

Signed-off-by: Nextcloud bot <bot@nextcloud.com>
8 months agofix(l10n): Update translations from Transifex
Nextcloud bot [Tue, 10 Jun 2025 02:59:34 +0000 (02:59 +0000)]
fix(l10n): Update translations from Transifex

Signed-off-by: Nextcloud bot <bot@nextcloud.com>
8 months agofix(l10n): Update translations from Transifex
Nextcloud bot [Sun, 8 Jun 2025 02:58:55 +0000 (02:58 +0000)]
fix(l10n): Update translations from Transifex

Signed-off-by: Nextcloud bot <bot@nextcloud.com>
8 months agofix(l10n): Update translations from Transifex
Nextcloud bot [Sat, 7 Jun 2025 02:57:25 +0000 (02:57 +0000)]
fix(l10n): Update translations from Transifex

Signed-off-by: Nextcloud bot <bot@nextcloud.com>
8 months agofix(l10n): Update translations from Transifex
Nextcloud bot [Fri, 6 Jun 2025 03:06:08 +0000 (03:06 +0000)]
fix(l10n): Update translations from Transifex

Signed-off-by: Nextcloud bot <bot@nextcloud.com>
8 months agofix(l10n): Update translations from Transifex
Nextcloud bot [Thu, 5 Jun 2025 03:01:36 +0000 (03:01 +0000)]
fix(l10n): Update translations from Transifex

Signed-off-by: Nextcloud bot <bot@nextcloud.com>
8 months agoMerge pull request #8348 from nextcloud/backport/8347/stable-3.16
Jyrki Gadinger [Wed, 4 Jun 2025 09:19:49 +0000 (11:19 +0200)]
Merge pull request #8348 from nextcloud/backport/8347/stable-3.16

[stable-3.16] fix(msi): set the REBOOT property in the MSI

8 months agofix(msi): set the REBOOT property in the MSI
Jyrki Gadinger [Wed, 4 Jun 2025 08:20:15 +0000 (10:20 +0200)]
fix(msi): set the REBOOT property in the MSI

A value of `ReallySuppress` will not display a reboot prompt whenever
the `ForceReboot` action was run, or whenever a reboot was scheduled
(e.g. by `FilesInUse`).  Apparently this will not reboot the machine on
its own either.

`winget` sets this property in its manifest[0], and according to reports in
issue #5369 this seems to work.

See also: https://learn.microsoft.com/en-us/windows/win32/msi/reboot

[0]: https://github.com/microsoft/winget-pkgs/blob/0b40904d1480f67d48c6d8e2ac7f27b31aa566c7/manifests/n/Nextcloud/NextcloudDesktop/3.16.5/Nextcloud.NextcloudDesktop.installer.yaml#L16

Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
8 months agoMerge pull request #8346 from nextcloud/backport/8220/stable-3.16
Jyrki Gadinger [Wed, 4 Jun 2025 08:54:52 +0000 (10:54 +0200)]
Merge pull request #8346 from nextcloud/backport/8220/stable-3.16

[stable-3.16] fix(macOS): Fix prompting of user for permission to access "other" apps' data

8 months agofeat(mac-crafter): Use our default entitlements file during default mac-crafter build run
Claudio Cambra [Tue, 29 Apr 2025 04:57:53 +0000 (12:57 +0800)]
feat(mac-crafter): Use our default entitlements file during default mac-crafter build run

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
8 months agofeat(macOS): Add entitlements file
Claudio Cambra [Tue, 29 Apr 2025 04:57:15 +0000 (12:57 +0800)]
feat(macOS): Add entitlements file

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
8 months agofeat(mac-crafter): Add entitlements path option to codesign command
Claudio Cambra [Tue, 29 Apr 2025 04:52:13 +0000 (12:52 +0800)]
feat(mac-crafter): Add entitlements path option to codesign command

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
8 months agofeat(mac-crafter): Add ability to codesign with an entitlements file
Claudio Cambra [Tue, 29 Apr 2025 04:51:13 +0000 (12:51 +0800)]
feat(mac-crafter): Add ability to codesign with an entitlements file

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
8 months agofix(l10n): Update translations from Transifex
Nextcloud bot [Wed, 4 Jun 2025 03:00:19 +0000 (03:00 +0000)]
fix(l10n): Update translations from Transifex

Signed-off-by: Nextcloud bot <bot@nextcloud.com>
8 months agofix(l10n): Update translations from Transifex
Nextcloud bot [Tue, 3 Jun 2025 02:58:54 +0000 (02:58 +0000)]
fix(l10n): Update translations from Transifex

Signed-off-by: Nextcloud bot <bot@nextcloud.com>
8 months agochore: prepare for release 3.16.4
Jyrki Gadinger [Mon, 2 Jun 2025 14:54:22 +0000 (16:54 +0200)]
chore: prepare for release 3.16.4

Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
8 months agoMerge pull request #8332 from nextcloud/backport/8330/stable-3.16
Matthieu Gallien [Mon, 2 Jun 2025 14:50:45 +0000 (16:50 +0200)]
Merge pull request #8332 from nextcloud/backport/8330/stable-3.16

[stable-3.16] fix(lockfilejobs): ensure using correct file path

8 months agofix(lockfilejobs): ensure using correct file path
Jyrki Gadinger [Mon, 2 Jun 2025 13:59:17 +0000 (15:59 +0200)]
fix(lockfilejobs): ensure using correct file path

Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
8 months agoMerge pull request #8328 from nextcloud/backport/8290/stable-3.16
Jyrki Gadinger [Mon, 2 Jun 2025 13:14:22 +0000 (15:14 +0200)]
Merge pull request #8328 from nextcloud/backport/8290/stable-3.16

[stable-3.16] fix(filesystem): only change folder permissions if required

8 months agofix(propagator): touch folder paths if permissions changed
Jyrki Gadinger [Wed, 21 May 2025 13:13:13 +0000 (15:13 +0200)]
fix(propagator): touch folder paths if permissions changed

Extra safeguard to ensure that the usage of
`FileSystem::setFolderPermissions` won't start a new sync run if
FolderWatcher/inotify detects a change in the file metadata...

Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
8 months agofix(filesystem): only change folder permissions if required
Jyrki Gadinger [Tue, 20 May 2025 17:25:53 +0000 (19:25 +0200)]
fix(filesystem): only change folder permissions if required

On Linux changing the permissions causes inotify to create a IN_ATTRIB
event -- even if the permissions stays the same.

Such an event is passed to the filesystem watcher which lets the client
schedule a new sync run.  In certain conditions, this could happen
during every sync run...

Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
8 months agoMerge pull request #8327 from nextcloud/backport/8297/stable-3.16
Matthieu Gallien [Mon, 2 Jun 2025 12:27:13 +0000 (14:27 +0200)]
Merge pull request #8327 from nextcloud/backport/8297/stable-3.16

[stable-3.16] fix(permissions): handle properly CanRead permission from server

8 months agofix(permissions): handle properly CanRead permission from server
Matthieu Gallien [Fri, 23 May 2025 17:53:41 +0000 (19:53 +0200)]
fix(permissions): handle properly CanRead permission from server

if Readable permissions is missing, do nto try to download the file

if a file was downlaoded but Readable permission is now missing, remove
it

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
8 months agoMerge pull request #8326 from nextcloud/backport/8246/stable-3.16
Matthieu Gallien [Mon, 2 Jun 2025 11:28:52 +0000 (13:28 +0200)]
Merge pull request #8326 from nextcloud/backport/8246/stable-3.16

[stable-3.16] fix(readonly): use native separator in paths before calling windows API

8 months agofix(readonly): use native separator in paths before calling windows API
Matthieu Gallien [Wed, 7 May 2025 21:54:52 +0000 (23:54 +0200)]
fix(readonly): use native separator in paths before calling windows API

we need platform native separators for file paths that will be used in
native Windows platform specific APIs

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
8 months agoMerge pull request #8322 from nextcloud/backport/8321/stable-3.16
Matthieu Gallien [Mon, 2 Jun 2025 11:21:01 +0000 (13:21 +0200)]
Merge pull request #8322 from nextcloud/backport/8321/stable-3.16

[stable-3.16] Bugfix/windows regressions

8 months agofix(windows): when deleting a file use safe long windows path
Matthieu Gallien [Mon, 2 Jun 2025 08:57:57 +0000 (10:57 +0200)]
fix(windows): when deleting a file use safe long windows path

will avoid getting a content access denied error because some paths is
too long for windows default limit and has to use the special syntax for
long path

see https://learn.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=registry

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
8 months agofix(readonly): avoid changing permissions when not needed
Matthieu Gallien [Fri, 30 May 2025 15:53:04 +0000 (17:53 +0200)]
fix(readonly): avoid changing permissions when not needed

in FilePermissionsRestore, first checks the folder permissions before
changing them

will avoid useless call changing permissions when not needed

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
8 months agofix(readonly): avoid implicit hydration when modifying permissions
Matthieu Gallien [Wed, 28 May 2025 15:14:46 +0000 (17:14 +0200)]
fix(readonly): avoid implicit hydration when modifying permissions

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
8 months agoMerge pull request #8325 from nextcloud/backport/8243/stable-3.16
Matthieu Gallien [Mon, 2 Jun 2025 10:58:33 +0000 (12:58 +0200)]
Merge pull request #8325 from nextcloud/backport/8243/stable-3.16

[stable-3.16] fix(readonly): apply ACL also to files inside read-only folders

8 months agofix(readonly): apply ACL also to files inside read-only folders
Matthieu Gallien [Wed, 7 May 2025 14:49:03 +0000 (16:49 +0200)]
fix(readonly): apply ACL also to files inside read-only folders

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
8 months agoMerge pull request #8324 from nextcloud/backport/8241/stable-3.16
Matthieu Gallien [Mon, 2 Jun 2025 10:50:57 +0000 (12:50 +0200)]
Merge pull request #8324 from nextcloud/backport/8241/stable-3.16

[stable-3.16] fix(readonly): enable MOVE rollback when folder is read-only

8 months agofix(readonly): enable MOVE rollback when folder is read-only
Matthieu Gallien [Wed, 7 May 2025 12:37:43 +0000 (14:37 +0200)]
fix(readonly): enable MOVE rollback when folder is read-only

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
8 months agoMerge pull request #8323 from nextcloud/backport/8240/stable-3.16
Matthieu Gallien [Mon, 2 Jun 2025 10:37:57 +0000 (12:37 +0200)]
Merge pull request #8323 from nextcloud/backport/8240/stable-3.16

[stable-3.16] fix(rename): avoid failing hard when rename is rejected by server

8 months agofix(rename): avoid failing hard when rename is rejected by server
Matthieu Gallien [Mon, 5 May 2025 16:40:35 +0000 (18:40 +0200)]
fix(rename): avoid failing hard when rename is rejected by server

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
8 months agofix(l10n): Update translations from Transifex
Nextcloud bot [Sun, 1 Jun 2025 02:57:40 +0000 (02:57 +0000)]
fix(l10n): Update translations from Transifex

Signed-off-by: Nextcloud bot <bot@nextcloud.com>
8 months agofix(l10n): Update translations from Transifex
Nextcloud bot [Sat, 31 May 2025 02:58:17 +0000 (02:58 +0000)]
fix(l10n): Update translations from Transifex

Signed-off-by: Nextcloud bot <bot@nextcloud.com>
8 months agofeat(windows): use cmake to configure windows integration DLL version
Matthieu Gallien [Fri, 9 May 2025 13:07:25 +0000 (15:07 +0200)]
feat(windows): use cmake to configure windows integration DLL version

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
8 months agoMerge pull request #8316 from nextcloud/backport/8277/stable-3.16
Jyrki Gadinger [Fri, 30 May 2025 08:25:51 +0000 (10:25 +0200)]
Merge pull request #8316 from nextcloud/backport/8277/stable-3.16

[stable-3.16] feat(mac-crafter): retry code-signing attempts

8 months agofeat(mac-crafter): retry code-signing attempts
Jyrki Gadinger [Thu, 15 May 2025 14:11:38 +0000 (16:11 +0200)]
feat(mac-crafter): retry code-signing attempts

This step sometimes fails with an error such as: "A timestamp was
expected but was not found.".  Any code-signing errors will result in
the notarisation step to fail.

Apparently this might be due to intermittent network issues.  Let's just
retry codesigning a couple of times in the case it fails ...

See also: https://developer.apple.com/documentation/security/resolving-common-notarization-issues#Include-a-secure-timestamp

Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
8 months agoMerge pull request #8317 from nextcloud/backport/8217/stable-3.16
Matthieu Gallien [Fri, 30 May 2025 07:41:33 +0000 (09:41 +0200)]
Merge pull request #8317 from nextcloud/backport/8217/stable-3.16

[stable-3.16] fix(appimage): move VFS plugins to AppDir

8 months agofix(appimage): move VFS plugins to AppDir
Jyrki Gadinger [Mon, 28 Apr 2025 13:13:14 +0000 (15:13 +0200)]
fix(appimage): move VFS plugins to AppDir

This allows the AppImage build to find and load the experimental VFS
plugins, and not crash with:

    [ critical plugins /home/user/src/common/vfs.cpp:250 ]: Could not load plugin: not existent or bad metadata "nextclouddevsync_vfs_suffix"
    [ fatal default /home/user/src/gui/folderman.cpp:326 ]: Could not load plugin
    [1]    72936 IOT instruction (core dumped)  ./nextclouddev-master-x86_64.AppImage

Fixes #7135
Fixes #7194
Fixes #7465

Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
8 months agoMerge pull request #8315 from nextcloud/backport/8178/stable-3.16
Matthieu Gallien [Fri, 30 May 2025 07:40:40 +0000 (09:40 +0200)]
Merge pull request #8315 from nextcloud/backport/8178/stable-3.16

[stable-3.16] Bugfix/version windows integration improve install

8 months agochore: add missing backport for VERSION.cmake
Jyrki Gadinger [Fri, 30 May 2025 07:21:25 +0000 (09:21 +0200)]
chore: add missing backport for VERSION.cmake

Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
8 months agofeat(msi): do not schedule reboots ourselves
Jyrki Gadinger [Mon, 12 May 2025 10:39:48 +0000 (12:39 +0200)]
feat(msi): do not schedule reboots ourselves

let's have the MSI RestartManager take care of that

Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
[skip ci]

8 months agofix(windows): add missing version to cfapi shell integration DLL
Matthieu Gallien [Fri, 9 May 2025 15:10:48 +0000 (17:10 +0200)]
fix(windows): add missing version to cfapi shell integration DLL

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
8 months agofeat(windows): use cmake to configure windows integration DLL version
Matthieu Gallien [Fri, 9 May 2025 13:07:25 +0000 (15:07 +0200)]
feat(windows): use cmake to configure windows integration DLL version

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
8 months agofix(msi): force termination of stuck processes
Jyrki Gadinger [Thu, 8 May 2025 12:23:40 +0000 (14:23 +0200)]
fix(msi): force termination of stuck processes

Stopping the Windows Explorer process does not always work.  Per default
the MSI Restart Manager will display a warning message after a timeout,
and not attempt to restart Explorer afterwards -- resulting in a black
screen if no other window is open.

Setting the property `MSIRMSHUTDOWN` to `1` will force the termination
of the process when the timeout is reached, which finally allows the
Explorer to be restarted.

Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
8 months agofix(msi): do not completely remove the previous installation when updating
Jyrki Gadinger [Wed, 7 May 2025 14:07:37 +0000 (16:07 +0200)]
fix(msi): do not completely remove the previous installation when updating

The MSIs we distribute perform so-called "major upgrades".

From the Microsoft docs, we learn that...

> A typical major upgrade **removes a previous version** of an
> application and installs a new version.

Indeed that was the case -- the previous version is uninstalled
completely before the new version gets installed.  Since we install an
extension that's loaded by explorer, the installer will ask the user to
restart Windows Explorer during the uninstallation of the previous
version (and restarting that might not always work as expected).

There is a way to change this behaviour though, using Wix3's
`MajorUpgrade` element.  Through its `Schedule` property it's possible
to define when the removal of the previous version should occur.

The previous value `afterInstallInitialize` is one of two values that
perform a complete uninstall/install sequence.  The new value
`afterInstallExecute` will install new files on top of the previous
installation (depending on the `REINSTALLMODE` I guess) and remove
older files that are not present.
In the case of the extensions this means that the .dlls from the
previous installation will not be touched, as long as the version
embedded in the DLL info didn't change.  This results in the installer
no longer requesting Windows Explorer to restart, which is a big plus :D

I also changed the REINSTALLMODE to `dmus` to allow downgrades as well.

With this change, the request to restart Windows Explorer should
hopefully happen only once an installation was made using an MSI that
contains this change.  Further updates will only request a restart if
the DLL version of these extensions change...

See also:
  - https://learn.microsoft.com/en-us/windows/win32/msi/major-upgrades
  - https://docs.firegiant.com/wix/schema/wxs/majorupgrade/#attributes:~:text=Schedule

Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
8 months agofix(msi): use standard replace mode for MSI installer
Matthieu Gallien [Mon, 7 Apr 2025 15:57:21 +0000 (17:57 +0200)]
fix(msi): use standard replace mode for MSI installer

shoudl enable replacing files during install happen only when needed
instead of always

will need to take care of migration from older releases

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
8 months agoMerge pull request #8314 from nextcloud/backport/8181/stable-3.16
Matthieu Gallien [Fri, 30 May 2025 07:40:07 +0000 (09:40 +0200)]
Merge pull request #8314 from nextcloud/backport/8181/stable-3.16

[stable-3.16] fix(gui): handle invalid file name edge case on Windows

8 months agofix(gui): don't append another slash to the relative path
Jyrki Gadinger [Thu, 24 Apr 2025 16:04:35 +0000 (18:04 +0200)]
fix(gui): don't append another slash to the relative path

Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
8 months agorefactor: add new filePath method to folder
Jyrki Gadinger [Thu, 24 Apr 2025 16:01:54 +0000 (18:01 +0200)]
refactor: add new filePath method to folder

Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
8 months agofix(gui): always hide the error label if we are allowed to rename
Jyrki Gadinger [Thu, 17 Apr 2025 16:05:28 +0000 (18:05 +0200)]
fix(gui): always hide the error label if we are allowed to rename

Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
8 months agofix(gui): update info text with proper invalid characters
Jyrki Gadinger [Thu, 17 Apr 2025 16:04:46 +0000 (18:04 +0200)]
fix(gui): update info text with proper invalid characters

Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
8 months agofix(gui): handle invalid file name edge case on Windows
Jyrki Gadinger [Thu, 17 Apr 2025 16:00:09 +0000 (18:00 +0200)]
fix(gui): handle invalid file name edge case on Windows

File names like "c:blah" would break the usage of the dialogue,
displaying a path like "c://blah" instead.

Apparently `QDir::filePath` checks if the passed file name is an
absolute file name using `!QFileInfo::isRelative`, which is the case if
the second character in the string is a colon -- probably indicating a
drive letter.

Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
8 months agoMerge pull request #8313 from nextcloud/backport/8280/stable-3.16
Matthieu Gallien [Fri, 30 May 2025 07:39:34 +0000 (09:39 +0200)]
Merge pull request #8313 from nextcloud/backport/8280/stable-3.16

[stable-3.16] fix(AppImage): bundle client translations

8 months agofix(AppImage): bundle client translations
Jyrki Gadinger [Thu, 15 May 2025 15:11:04 +0000 (17:11 +0200)]
fix(AppImage): bundle client translations

Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
8 months agoMerge pull request #8312 from nextcloud/backport/8276/stable-3.16
Matthieu Gallien [Fri, 30 May 2025 07:39:11 +0000 (09:39 +0200)]
Merge pull request #8312 from nextcloud/backport/8276/stable-3.16

[stable-3.16] fix(delete): fix move to trash in read-only folders

8 months agofix(moveToTrash): enable use of move to trash in some automated tests
Matthieu Gallien [Wed, 21 May 2025 08:37:09 +0000 (10:37 +0200)]
fix(moveToTrash): enable use of move to trash in some automated tests

should improve coverage for move to trash feature to ensure this is
working as expected by users

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
8 months agofix(readonly): ignore move to trash for read-èonly items
Matthieu Gallien [Tue, 20 May 2025 21:35:29 +0000 (23:35 +0200)]
fix(readonly): ignore move to trash for read-èonly items

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
8 months agofix(delete): fix move to trash when parent folder is read-only
Matthieu Gallien [Thu, 15 May 2025 10:30:25 +0000 (12:30 +0200)]
fix(delete): fix move to trash when parent folder is read-only

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
8 months agofix(delete): optimize item exist checks when propagating from server
Matthieu Gallien [Thu, 15 May 2025 10:28:10 +0000 (12:28 +0200)]
fix(delete): optimize item exist checks when propagating from server

QFileInfo::exists(filename) is the fastest method

alos avoid creating too many QFileInfo instances when we need it for
multiple purposes

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
8 months agofix(delete): always print warnings when file deletions fail
Matthieu Gallien [Thu, 15 May 2025 10:04:43 +0000 (12:04 +0200)]
fix(delete): always print warnings when file deletions fail

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
8 months agofix(l10n): Update translations from Transifex
Nextcloud bot [Fri, 30 May 2025 02:56:46 +0000 (02:56 +0000)]
fix(l10n): Update translations from Transifex

Signed-off-by: Nextcloud bot <bot@nextcloud.com>
8 months agofix(l10n): Update translations from Transifex
Nextcloud bot [Thu, 29 May 2025 03:08:55 +0000 (03:08 +0000)]
fix(l10n): Update translations from Transifex

Signed-off-by: Nextcloud bot <bot@nextcloud.com>
8 months agoMerge pull request #8308 from nextcloud/backport/8228/stable-3.16
Camila Ayres [Wed, 28 May 2025 14:48:43 +0000 (16:48 +0200)]
Merge pull request #8308 from nextcloud/backport/8228/stable-3.16

[stable-3.16] fix(migration): migrate general network settings.

8 months agofix(migration): migrate general network settings.
Camila Ayres [Sat, 3 May 2025 18:00:17 +0000 (20:00 +0200)]
fix(migration): migrate general network settings.

Signed-off-by: Camila Ayres <hello@camilasan.com>
8 months agofix(l10n): Update translations from Transifex
Nextcloud bot [Wed, 28 May 2025 02:59:53 +0000 (02:59 +0000)]
fix(l10n): Update translations from Transifex

Signed-off-by: Nextcloud bot <bot@nextcloud.com>
8 months agofix(l10n): Update translations from Transifex
Nextcloud bot [Tue, 27 May 2025 02:58:32 +0000 (02:58 +0000)]
fix(l10n): Update translations from Transifex

Signed-off-by: Nextcloud bot <bot@nextcloud.com>
8 months agofix(l10n): Update translations from Transifex
Nextcloud bot [Sun, 25 May 2025 02:59:33 +0000 (02:59 +0000)]
fix(l10n): Update translations from Transifex

Signed-off-by: Nextcloud bot <bot@nextcloud.com>
8 months agofix(l10n): Update translations from Transifex
Nextcloud bot [Sat, 24 May 2025 02:59:18 +0000 (02:59 +0000)]
fix(l10n): Update translations from Transifex

Signed-off-by: Nextcloud bot <bot@nextcloud.com>